위와 같은 형식의 멤버 함수는 변환 연산자이다(Conversion Operators)
#include <iostream>
class obj{
public:
obj(int i): boolean(i) {}
operator bool() const{
return boolean != 0;
}
private:
int boolean;
};
int main(void){
obj obj1(1);
obj obj2(0);
if(obj1){
std::cout<<"OBJ1 TRUE"<<std::endl;
} else {
std::cout<<"OBJ1 FALSE"<<std::endl;
}
if(obj2){
std::cout<<"OBJ2 TRUE"<<std::endl;
} else {
std::cout<<"OBJ2 FALSE"<<std::endl;
}
return 0;
}
위와 같이 opeartor bool은 해당 클래스가 참/거짓을 판별하는 경우 사용된다.